<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0046)http://www.vovisoft.com/dotNET/Bai12/Bai12.htm -->
<HTML><HEAD><TITLE>.NET Lesson 12</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META http-equiv=Content-Language content=vi>
<META content="MSHTML 5.50.4134.100" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<META 
content="Visual Basic, VB Programming in Vietnamese, Vovisoft, VB6, VB Tutorials, Learn Visual Basic, Internet, Unicode, Vietnamese VB tutorials, Database, Asp, Java, Javascript, VBscript, FrontPage 2000, XML, Ms Office 2000" 
name=keywords></HEAD>
<BODY leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<CENTER><A href="http://www.vovisoft.com/"><IMG height=77 alt="Logo of Vovisoft" 
src="Bai 12_files/vs-logo4_10.gif" width=102 border=0> </A><FONT face=Tahoma>
<H2><FONT face=Tahoma color=#800000>Bài 12</FONT></H2>
<H2><FONT face=Tahoma color=#800000>Những chức năng mới trong giao diện cửa sổ 
của VB.NET (phần V)</FONT></H2></CENTER>
<BLOCKQUOTE>
  <BLOCKQUOTE>
    <H3><FONT color=green>Toolbars</FONT></H3><B>Toolbars</B> trong .NET đã được 
    nâng cấp bằng cách thêm chức năng cho các <B>ToolBarButtons</B> trong 
    collection của những buttons ấy.<BR><BR>Để dùng thử Toolbar control, bạn hãy 
    khởi động một Project mới và đặt một Toolbar vào form chính bằng cách 
    doubleclick lên Toolbar icon trong Toolbox. Một Toolbar sẽ hiện ra nằm ngay 
    dưới tiêu đề của form. Kế đó rightclick lên Toolbar ấy và chọn Properties để 
    edit property Buttons Collection bằng cách click lên chữ <B>(Collection)</B> 
    rồi click ba dấu chấm phía bên phải để hiển thị <B>ToolbarButton Collection 
    Editor</B>.<BR><BR><IMG height=496 src="Bai 12_files/Toolbars.gif" 
    width=877><BR><BR>Bạn hãy <B>Add</B> vào Toolbar ba buttons với những đặc 
    tính sau: 
    <UL>
      <LI>Đổi property <B>Text</B> của button thứ nhất (<B>ToolbarButton1</B>) 
      ra <B>Close</B> vì ta muốn đóng chương trình khi user click lên button ấy. 
      By default <B>Style</B> của ToolbarButton là <B>PushButton</B>. 
      <LI>Đổi property <B>Style</B> của button thứ nhì (<B>ToolbarButton2</B>) 
      ra <B>Separator</B> vì ta muốn dùng nó để tạo khoảng cách giữa button thứ 
      nhất và button thứ ba. 
      <LI>Đổi property <B>Text</B> của button thứ ba (<B>ToolbarButton3</B>) ra 
      <B>Background Colour</B> và property <B>Style</B> ra <B>DropDownButton</B> 
      vì ta muốn dùng nó như một Combobox. </LI></UL>Khi chạy thử chương trình ta 
    sẽ thấy hình giống như dưới đây: 
    <BLOCKQUOTE><IMG height=248 src="Bai 12_files/ToolbarDemo.gif" 
    width=336></BLOCKQUOTE>Bây giờ ta sẽ viết code để xử lý Event Click của 
    Toolbar. Chỉ có một handler, <B>Sub ToolBar1_ButtonClick</B>, được dùng cho 
    tất cả các buttons. Ta phân biệt Button nào dựa vào <B>Index</B> của nó, 
    giống giống như một array of buttons trong VB6. Nếu user click button thứ 
    nhất ta sẽ có <B>ToolBar1.Buttons.IndexOf(e.Button)</B> bằng <B>0</B>, lúc 
    ấy ta sẽ Close form chính.<BR><BR>
    <TABLE bgColor=#f6f6f6>
      <TBODY>
      <TR>
        <TD><FONT size=3><PRE><FONT color=blue>Private</FONT> <FONT color=blue>Sub</FONT> ToolBar1_ButtonClick( <FONT color=blue>ByVal</FONT> sender <FONT color=blue>As</FONT> System.Object, <FONT color=blue>ByVal</FONT> e <FONT color=blue>As</FONT> System.Windows.Forms.ToolBarButtonClickEventArgs) <FONT color=blue>Handles</FONT> ToolBar1.ButtonClick 
   <FONT color=blue>Select</FONT> <FONT color=blue>Case</FONT> ToolBar1.Buttons.IndexOf(e.Button) 
   <FONT color=blue>Case</FONT> 0 <FONT color=green>' Close Button</FONT>
      Me.Close() 
   <FONT color=blue>Case</FONT> 1 <FONT color=green>' Never happens because the Button is a Separator</FONT>

   <FONT color=blue>Case</FONT> 2 <FONT color=green>'</FONT>
      MessageBox.Show("You clicked the third button") 
   <FONT color=blue>End</FONT> <FONT color=blue>Select</FONT> 
<FONT color=blue>End</FONT> <FONT color=blue>Sub</FONT> 
</PRE></FONT></TD></TR></TBODY></TABLE>Nếu không muốn dùng 
    ToolBar1.Buttons.IndexOf(e.Button), bạn cũng có thể so sánh Buttons với 
    operator <B><FONT color=blue>Is</FONT></B> như sau:<BR><BR>
    <TABLE bgColor=#f6f6f6>
      <TBODY>
      <TR>
        <TD><FONT size=3><PRE><FONT color=blue>If</FONT> e.Button Is ToolBarButton1 <FONT color=blue>Then</FONT> 
   Me.Close() 
<FONT color=blue>ElseIf</FONT> e.Button Is ToolBarButton3 <FONT color=blue>Then</FONT> 
   MessageBox.Show("You clicked the third button") 
<FONT color=blue>End</FONT> <FONT color=blue>If</FONT> 
</PRE></FONT></TD></TR></TBODY></TABLE>Kế đó chúng ta cho đặt một 
    ContextMenu tên <B>ContextMenu1</B> vào form và assign nó vào property 
    <B>DropDownMenu</B> của button thứ ba như trong hình dưới đây:<BR><BR><IMG 
    height=432 src="Bai 12_files/DropDown.gif" width=743><BR><BR>Nếu không muốn 
    assign ContextMenu1 vào button thứ ba trong lúc thiết kế, bạn có thể thực 
    hiện việc ấy bằng code lúc form mới load như sau:<BR><BR>
    <TABLE bgColor=#f6f6f6>
      <TBODY>
      <TR>
        <TD><FONT size=3><PRE><FONT color=blue>Private</FONT> <FONT color=blue>Sub</FONT> frmToolbar_Load( <FONT color=blue>ByVal</FONT> sender <FONT color=blue>As</FONT> System.Object, <FONT color=blue>ByVal</FONT> e <FONT color=blue>As</FONT> System.EventArgs) <FONT color=blue>Handles</FONT> MyBase.Load 
   ToolBarButton3.DropDownMenu = ContextMenu1 
<FONT color=blue>End</FONT> <FONT color=blue>Sub</FONT> 
</PRE></FONT></TD></TR></TBODY></TABLE>Bạn hãy edit hai menuItems cho 
    ContextMenu1: một cái tên <B>mnuXám</B> với Text là <B>Xám</B> và cái kia 
    tên <B>mnuTrắng</B> với Text là <B>Trắng</B>. <BR><BR>Khi chạy chương trình, 
    nếu bạn click cái thanh có dấu tam giác đen nằm bên phải button thứ ba, 
    ContextMenu1 sẽ hiện ra để bạn dùng. Nếu bạn click button thứ ba, chương 
    trình cũng generate một Click Event nhưng hiện giờ ta không dùng nó, chỉ 
    hiển thị một sứ điệp nhỏ để xác định là có Event Click ấy.<BR><BR>Như thế, 
    ta thấy .NET ghép một ContextMenu vào một ToolbarButton để biến nó thành một 
    DropDownMenu. Có điều sau khi user đã chọn một Item trong 
    ContextMenu/DropDownMenu, Text của Item đó không được hiển thị giống như 
    trong một ComboBox. Nếu bạn khó tính và muốn có chuyện đó thì phải tự làm 
    lấy như cho thấy trong code dưới đây:<BR><BR>
    <TABLE bgColor=#f6f6f6>
      <TBODY>
      <TR>
        <TD><FONT size=3><PRE><FONT color=blue>Private</FONT> <FONT color=blue>Sub</FONT> frmToolbar_Load( <FONT color=blue>ByVal</FONT> sender <FONT color=blue>As</FONT> System.Object, <FONT color=blue>ByVal</FONT> e <FONT color=blue>As</FONT> System.EventArgs) <FONT color=blue>Handles</FONT> MyBase.Load 
   ToolBarButton3.DropDownMenu = ContextMenu1 
   ToolBarButton3.Text = "Xám" 
<FONT color=blue>End</FONT> <FONT color=blue>Sub</FONT> 

<FONT color=blue>Private</FONT> <FONT color=blue>Sub</FONT> mnuXám_Click( <FONT color=blue>ByVal</FONT> sender <FONT color=blue>As</FONT> System.Object, <FONT color=blue>ByVal</FONT> e <FONT color=blue>As</FONT> System.EventArgs) <FONT color=blue>Handles</FONT> mnuXám.Click 
   MessageBox.Show("Bạn chọn màu Xám") 
   ToolBarButton3.Text = "Xám" 
<FONT color=blue>End</FONT> <FONT color=blue>Sub</FONT> 

<FONT color=blue>Private</FONT> <FONT color=blue>Sub</FONT> mnuTrắng_Click( <FONT color=blue>ByVal</FONT> sender <FONT color=blue>As</FONT> System.Object, <FONT color=blue>ByVal</FONT> e <FONT color=blue>As</FONT> System.EventArgs) <FONT color=blue>Handles</FONT> mnuTrắng.Click 
   MessageBox.Show("Bạn chọn màu Trắng") 
   ToolBarButton3.Text = "Trắng" 
<FONT color=blue>End</FONT> <FONT color=blue>Sub</FONT> 
</PRE></FONT></TD></TR></TBODY></TABLE>Khi chạy chương trình bạn sẽ thấy như 
    sau:<BR><BR>
    <BLOCKQUOTE><IMG height=248 src="Bai 12_files/XamTrang.gif" 
    width=336></BLOCKQUOTE>Bạn có thể <A 
    href="http://www.vovisoft.com/dotNET/Bai12/Toolbar.zip">tải về chương trình 
    Toolbar nầy</A> tại đây. <BR><BR>
    <H3><FONT color=green>ListBox</FONT></H3>
    <H3><FONT color=blue>Items là một collection of Strings</FONT></H3>Mới dùng 
    đến, ta sẽ thấ</BLOCKQUOTE></BLOCKQUOTE></FONT></BODY></HTML>
